#include "stm32f10x.h"                  // Device header

void delay_ms(uint32_t ms) {
    // 假设系统时钟为 84 MHz（12 ns 每周期）
    // 以此为基础计算出大致的循环次数
    // 循环延迟计算公式 (84,000,000 cycles/sec) / 1,000 (ms/sec) = 84,000 cycles/ms

    volatile uint32_t delay;
    while (ms--) {
        // 这两个循环的目的是消耗时间，具体数值可以根据实际情况调整
        for (delay = 0; delay < 50000; delay++);
    }
}

int main(void)
{	
//	RCC->APB2ENR = 0x00000010;
//	GPIOC->CRH = 0x00300000;
//	GPIOC->ODR = 0x00002000; //熄灯
//	GPIOC->ODR = 0x00000000; //亮灯
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIOStruct;
	GPIOStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIOStruct.GPIO_Pin = GPIO_Pin_13;
	GPIOStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIOStruct);

	while (1)
	{
		GPIO_ResetBits(GPIOC, GPIO_Pin_13); //亮灯
		delay_ms(100);
		GPIO_SetBits(GPIOC, GPIO_Pin_13); //熄灯
		delay_ms(100);
	}
	return 0;
}
